package cn.fl.insurance.transform;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.BeanUtils;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.insurance.dto.InsCompChnPolDTO;
import cn.fl.insurance.vo.InsCompChnPolVO;

/**
 * @Description: 渠道政策 转换器
 * VO是客户端传递数据到服务端进行转换的数据
 * VO转换数据变成DTO传递到服务端
 * VO不能在服务端出现
 */
public class InsCompChnPolVOTransform {


    /**
     * DTO 转  VO
     *
     * @param dto InsCompChnPolDTO
     * @return InsCompChnPolVO
     */
    public static InsCompChnPolVO toVO(InsCompChnPolDTO dto) {
        InsCompChnPolVO vo = null;
        if (dto != null) {
            vo = new InsCompChnPolVO();
            BeanUtils.copyProperties(dto,vo);
            /*vo.setId(dto.getId());
            vo.setInsCompId(dto.getInsCompId());//保险公司主键
            vo.setPrdTypCd(dto.getPrdTypCd());//产品类型代码 PRD0001
            vo.setInsTypCd(dto.getInsTypCd());//险种种类
            vo.setRebPct(dto.getRebPct());//返利比例
            vo.setRebNatCd(dto.getRebNatCd());//返利性质:实收返利续保保证金冲抵
            vo.setRebAmt(dto.getRebAmt());//返利金额
            vo.setRebDt(dto.getRebDt());//返利时间
            vo.setPrInstId(dto.getPrInstId());//流程实例ID
            vo.setAudStsCd(dto.getAudStsCd());//审核状态
            vo.setPrjPrdId(dto.getPrjPrdId());//项目产品ID
            vo.setIsValid(dto.getIsValid());//是否有效（1：是，0：否）
            vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人
            vo.setPrdTypCdNm(dto.getPrdTypCdNm());
            vo.setInsTypCdNm(dto.getInsTypCdNm());
            vo.setRebNatCdNm(dto.getRebNatCdNm());
            vo.setDisRat(dto.getDisRat());*/
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param vo InsCompChnPolVO
     * @return InsCompChnPolDTO
     */
    public static InsCompChnPolDTO toDTO(InsCompChnPolVO vo) {
        InsCompChnPolDTO dto = null;
        if (vo != null) {
            dto = new InsCompChnPolDTO();
            BeanUtils.copyProperties(vo,dto);
            /*dto.setId(vo.getId());
            dto.setInsCompId(vo.getInsCompId());//保险公司主键
            dto.setPrdTypCd(vo.getPrdTypCd());//产品类型代码 PRD0001
            dto.setInsTypCd(vo.getInsTypCd());//险种种类
            dto.setRebPct(vo.getRebPct());//返利比例
            dto.setRebNatCd(vo.getRebNatCd());//返利性质:实收返利续保保证金冲抵
            dto.setRebAmt(vo.getRebAmt());//返利金额
            dto.setRebDt(vo.getRebDt());//返利时间
            dto.setPrInstId(vo.getPrInstId());//流程实例ID
            dto.setAudStsCd(vo.getAudStsCd());//审核状态
            dto.setPrjPrdId(vo.getPrjPrdId());//项目产品ID
            dto.setIsValid(vo.getIsValid());//是否有效（1：是，0：否）
            dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
            dto.setDisRat(vo.getDisRat());*/
        }
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list List<InsCompChnPol>
     * @return List<InsCompChnPolDTO>
     */
    public static List<InsCompChnPolVO> toVOList(List<InsCompChnPolDTO> list) {
        List<InsCompChnPolVO> voList = new ArrayList<InsCompChnPolVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (InsCompChnPolDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }

    /**
     * VO集合 转 DTO集合
     *
     * @param list List<InsCompChnPolVO>
     * @return List<InsCompChnPolDTO>
     */
    public static List<InsCompChnPolDTO> toDTOList(List<InsCompChnPolVO> list) {
        List<InsCompChnPolDTO> dtoList = new ArrayList<InsCompChnPolDTO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (InsCompChnPolVO vo : list) {
                dtoList.add(toDTO(vo));
            }
        }
        return dtoList;
    }
}
